package br.com.unioeste.bo;

public class Aula 
{
	
	private Disciplina disciplina;
	private Curso curso;
	private Serie serie;
	private Sala sala;
	private int dia;
	private int horario;
	private boolean firstSemestre;
	
	public Aula(String curso, String serie, String disciplina,boolean firstSemestre)
	{
		this.disciplina = new Disciplina();
		this.curso = new Curso();
		this.serie = new Serie();
		
		this.disciplina.setNomeDisciplina(disciplina);
		this.curso.setNome(curso);
		this.serie.setSerie(serie);
		this.setFirstSemestre(firstSemestre);
	}
	
	public Aula(Curso curso, Serie serie, Disciplina disc){
		this.curso = new Curso();
		this.curso.setNome(curso.getNome());
		
		
		this.serie = new Serie();
		this.serie.setNroMedioMatriculados(serie.getNroMedioMatriculados());
		this.serie.setSerie(serie.getSerie());
		
		
		this.disciplina = new Disciplina();
		this.disciplina.setNomeDisciplina(disc.getNomeDisciplina());
		this.disciplina.setCargaHoraria(disc.getCargaHoraria());
		this.disciplina.setNroMatriculados(disc.getNroMatriculados());
		this.disciplina.setProfessor(disc.getProfessor());
	}
	
	public Disciplina getDisciplina() {
		return disciplina;
	}

	public void setDisciplina(Disciplina disciplina) {
		this.disciplina = disciplina;
	}

	public Curso getCurso() {
		return curso;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}

	public Serie getSerie() {
		return serie;
	}

	public void setSerie(Serie serie) {
		this.serie = serie;
	}

	public Sala getSala() {
		return sala;
	}

	public void setSala(Sala sala) {
		this.sala = sala;
	}

	/**
	 * @return the dia
	 */
	public int getDia() {
		return dia;
	}

	/**
	 * @return the horario
	 */
	public int getHorario() {
		return horario;
	}

	/**
	 * @param dia the dia to set
	 */
	public void setDia(int dia) {
		this.dia = dia;
	}

	/**
	 * @param horario the horario to set
	 */
	public void setHorario(int horario) {
		this.horario = horario;
	}
	
	public void setFirstSemestre(boolean valor){
		this.firstSemestre = valor;
	}
	
	public boolean isFirstSemestre(){
		return this.firstSemestre;
	}
	
	@Override
	public boolean equals(Object arg0) {
		if(arg0 instanceof Disciplina){
			Disciplina disc = (Disciplina) arg0;
			if(disc.getNomeDisciplina().trim().equals(this.disciplina.getNomeDisciplina().trim()))
				return true;
		}
		if(arg0 instanceof Aula){
			Aula aula = (Aula) arg0;
			Boolean s1 = new Boolean(this.firstSemestre);
			Boolean s2 = new Boolean(aula.isFirstSemestre());
			if(aula.getDisciplina().getNomeDisciplina().trim().equals(this.disciplina.getNomeDisciplina().trim())
					&& aula.getDia() == this.dia && s1.equals(s2))
				return true;
		}
	
		return false;
	}

	@Override
	public String toString() {
		StringBuffer str = new StringBuffer();
		str.append("Curso: ");
		str.append(this.curso.getNome());
		str.append("\tSerie: ");
		str.append(this.serie.getSerie());
		str.append("\tDisciplina: ");
		str.append(this.disciplina.getNomeDisciplina());
		str.append("\tdia: "+dia+" h: "+horario+firstSemestre+"\n");
		return str.toString();
	}
	
}
